import React, {Component} from 'react';
/*
* 1- 父组件当中的render一旦执行，那么子组件当中的render会不会执行？
*   答：会
* 2- 子组件的render还会在什么情况下执行
*   答：当你执行this.setState(),this.forceUpdate
* 3- 当组件每次执行render都会将返回的虚拟DOM转为真实DOM吗？（重新渲染）
*   答：一般不会，需要考虑render执行情况。
*     挂载时执行render,会将返回的虚拟DOM转为真实DOM，重新渲染。
*     当再次执行render时，会将返回的虚拟DOM与上一次生成的虚拟DOM进行比较（找不同），只会将不同的元素重新渲染。
*     找不同的方法称为diff算法。
* 4- diff算法可以聊一聊吗？
*   4-1：如果组件类型不同，那么不会进行比较，重新生成。
*   4-2：当发现有新的React元素，重新生成
*   4-3：如果虚拟DOM当中的元素位置进行了移动，重新生成。（尽量避免移动）
*   4-4：通过key也可以提升效率。
* */
class App extends Component {
    state = {
        num:1
    }
    render() {
        return (
            <div>
                <h3>App</h3>
                <button onClick={()=>{
                    this.setState({
                        num:100
                    })
                }}>{this.state.num}</button>
            </div>
        );
    }
}

export default App;